# -*- coding: utf-8 -*-

import psycopg2


class Bancodedados:
	def __init__(self):
		self.conn = psycopg2.connect("dbname=falcao user=falcao")
		self.c = self.conn.cursor()
		self.CriarTabelas()   #ve se existe tabela e cria se não tiver

	def Inserir(self, nome, preco):
		self.c.execute('''insert into produtos (id, nome, preco) values(NULL,?,?)''', (nome, preco))
		self.conn.commit()   #salva

	def LerTudo(self):
		cursor = self.c.execute('''select * from produtos''')
		for row in cursor:
			print(row)

	def LerCodigo(self, codigo):
		self.c.execute('''select * from produtos where codigo = %s''', (codigo,))
		return(self.c.fetchone())

	def LerNome(self, texto):
		#nao pesquisa se campo estiver vazio, e menor que 3 letras, para nao retornar tudo.
		if (texto != '') and (len(texto)>=3):
			texto = texto.upper()
			#conta espaco
			espacos = texto.count(' ')
			pe = texto.find(' ')
			n = ('%' + texto[:pe] + '%')
			comando = "select * from produtos where (descricao LIKE '%s')" % (n)
			if (espacos > 0):   #tem espaco e nao eh o ultimo c/  and (texto[-1:] != ' '
				ptexto = texto.split()
				for palavra in ptexto:
					if palavra not in texto[:pe]:  #nao inclui a primeira palavra
						comando = comando + " and (descricao LIKE '%"+palavra+"%')"
			self.c.execute(comando)
			return(self.c.fetchmany(50))
			#return comando
		else:
			return ''

	def CriarTabelas(self):
		pass
		#produtos
		#try: self.c.execute('''select * from produtos''')
		#except: self.c.execute('''create table produtos (codigo INTEGER PRIMARY KEY,codigo_distribuidora text,
		#descricao text,uf text,quant_emb text,preco_custo text,preco_venda text)''')
